package com.gsc.controller;

import com.gsc.domain.ResponseResult;
import com.gsc.domain.dto.TagListDto;
import com.gsc.domain.vo.PageVo;
import com.gsc.domain.vo.TagVo;
import com.gsc.service.TagService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @author gscstart
 * @create 2023/2/16-9:18
 */
@RestController
@RequestMapping("/content/tag")
@Api(tags = "标签", description = "标签相关接口")
public class TagController {

    @Autowired
    private TagService tagService;


    /**
     * 分页查询标签接口
     * @param pageNum
     * @param pageSize
     * @param tagListDto
     * @return
     */
    @GetMapping("/list")
    public ResponseResult<PageVo> pageTagList(Integer pageNum, Integer pageSize, TagListDto tagListDto){
        return tagService.pageTagList(pageNum,pageSize,tagListDto);
    }

    /**
     * 新增标签接口
     * @param tagListDto
     * @return
     */
    @PostMapping
    public ResponseResult<PageVo> addTag(@RequestBody TagListDto tagListDto){
        return tagService.addTag(tagListDto);
    }

    /**
     * 逻辑删除标签接口
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    public ResponseResult<PageVo> deleteTag(@PathVariable Integer id){
        return tagService.deleteTag(id);
    }

    @GetMapping("/{id}")
    public ResponseResult<PageVo> selectPageTag(@PathVariable Long id){
        return tagService.selectPageTag(id);
    }
    @PutMapping
    public ResponseResult<PageVo> updateTag(@RequestBody TagVo tagVo){
        return tagService.updateTag(tagVo);
    }

    @GetMapping("/listAllTag")
    public ResponseResult listAllTag(){
        return tagService.listAllTag();
    }


}
